import type { ClassInfo } from './classInfo'
import type { ArrangeTemplate } from './arrangeTemplate'
import type { TimeTemplate } from './timeTemplate'
import http from '@/utils/http'

const BASE_URL = '/education/class/schedule'

export interface ClassShecduleQuery {
  classYear?: number
  term?: string
  grade?: string[]
  subject?: string
  campusId?: string
  classroomId?: string
  className?: string
  saleStatus?: number[]
  leadTeacherId?: string[]
  classCategory?: number[]
  classTypeId?: string
}

export interface ShecduleTeacher {
  /* id */
  id: string
  /* 班级名称 */
  name: string
  /* 教学年份 */
  classYear: number
  /* 科目code */
  subject: string
  /* 学期code */
  term: string
  /* 年级 */
  grade: string
  /* 班级分类,可用值:1,2,3,4 */
  classCategory: string
  /* 教室id */
  classroomId: string
  /* 教室名称 */
  classroomName: string
  /* 校区id */
  campusId: string
  /* 校区名称 */
  campusName: string
  /* 班型id */
  classTypeId: string
  /* 计划招生：招生情况 */
  planStudentCount: number
  /* 报名人数：招生情况 */
  enrollStudentCount: number
  /* 通过人数：招生情况 */
  passedStudentCount: number
  /* 总价 */
  totalPrice: string | number
  /* 总课数:上课进度 */
  totalLessonCount: number
  /* 已上课数：上课进度 */
  completedLessonCount: number
  /* 班级状态,可用值:0,1,2,3 */
  classStatus: string
  /* 上架状态,可用值:0,1 */
  saleStatus: string
  /* 主讲老师id */
  leadTeacherId: string
  /* 主讲老师名称 */
  leadTeacherName: string
  /* 排课开始时间 */
  lessonStartDate: string
  /* 排课结束时间 */
  lessonEndDate: string
  /* 未审核订单数 */
  pendingPayCount: number
}

export interface ClassShecduleResp extends ClassInfo {
  campusName: string
  arrangeTemplate: ArrangeTemplate
  timeTemplate: TimeTemplate
  leadTeacherName: string
  classTypeName: string
};

export interface ClassroomShecduleQuery {
  dateFlag: string
  classroomId?: string
  campusId?: string
  startTime?: string
  endTime?: string
}

export interface ClassroomShecduleResp {
  /* key:上课模板名称（日期）,value:详情信息（当前日期的详情班级信息） */
  monthMap: {
    /* */
    id: string

    /* */
    createUser: string

    /* */
    createTime: string

    /* */
    updateUser: string

    /* */
    updateTime: string

    /* 班级id */
    classId: string

    /* 校区 */
    campusId: string

    /* 教室 */
    classroomId: string

    /* 主讲老师 */
    leadTeacherId: string

    /* 辅导老师 */
    assistTeacherId: string

    /* 课次顺序 */
    lessonIndex: number

    /* 课次标题 */
    title: string

    /* 上课日期 */
    lessonDate: string

    /* 开始时间 */
    startTime: string

    /* 结束时间 */
    endTime: string

    /* enum-课次状态,可用值:0,1,2,3 */
    lessonStatus: string

    /* 课次模板id */
    arrangeLessonId: string

    /* 课次描述 */
    description: string

    /* 备注（内部） */
    remark: string

    /* 班级名称 */
    className: string

    /* 教室名称 */
    classroomName: string

    /* 校区名称 */
    campusName: string

    /* 主讲老师名称 */
    leadTeacherName: string

    /* 时分区间 */
    between: string

    /* 开始时分 */
    start: string

    /* 结束时分 */
    end: string
  }

  /* key:上课模板名称（教室）,value:详情信息（当前教室的详情班级信息） */
  weekMap: {
    /* */
    id: string

    /* */
    createUser: string

    /* */
    createTime: string

    /* */
    updateUser: string

    /* */
    updateTime: string

    /* 班级id */
    classId: string

    /* 校区 */
    campusId: string

    /* 教室 */
    classroomId: string

    /* 主讲老师 */
    leadTeacherId: string

    /* 辅导老师 */
    assistTeacherId: string

    /* 课次顺序 */
    lessonIndex: number

    /* 课次标题 */
    title: string

    /* 上课日期 */
    lessonDate: string

    /* 开始时间 */
    startTime: string

    /* 结束时间 */
    endTime: string

    /* enum-课次状态,可用值:0,1,2,3 */
    lessonStatus: string

    /* 课次模板id */
    arrangeLessonId: string

    /* 课次描述 */
    description: string

    /* 备注（内部） */
    remark: string

    /* 班级名称 */
    className: string

    /* 教室名称 */
    classroomName: string

    /* 校区名称 */
    campusName: string

    /* 主讲老师名称 */
    leadTeacherName: string

    /* 时分区间 */
    between: string

    /* 开始时分 */
    start: string

    /* 结束时分 */
    end: string
  }

  /* key:上课模板名称（天）,value:详情信息（当前天的详情班级信息） */
  dayMap: {
    /* */
    id: string

    /* */
    createUser: string

    /* */
    createTime: string

    /* */
    updateUser: string

    /* */
    updateTime: string

    /* 班级id */
    classId: string

    /* 校区 */
    campusId: string

    /* 教室 */
    classroomId: string

    /* 主讲老师 */
    leadTeacherId: string

    /* 辅导老师 */
    assistTeacherId: string

    /* 课次顺序 */
    lessonIndex: number

    /* 课次标题 */
    title: string

    /* 上课日期 */
    lessonDate: string

    /* 开始时间 */
    startTime: string

    /* 结束时间 */
    endTime: string

    /* enum-课次状态,可用值:0,1,2,3 */
    lessonStatus: string

    /* 课次模板id */
    arrangeLessonId: string

    /* 课次描述 */
    description: string

    /* 备注（内部） */
    remark: string

    /* 班级名称 */
    className: string

    /* 教室名称 */
    classroomName: string

    /* 校区名称 */
    campusName: string

    /* 主讲老师名称 */
    leadTeacherName: string

    /* 时分区间 */
    between: string

    /* 开始时分 */
    start: string

    /* 结束时分 */
    end: string
  }
};

export interface TeacherShecduleReq {
  dateFlag: string
  startTime: string
  endTime: string
  leadTeacherId: string
  assistTeacherId: string
}


// 课程课表
export const getClassShecdule = (query: ClassShecduleQuery) => {
  return http.get<ClassShecduleResp[]>(`${BASE_URL}/class`, query)
}

// 教室课表
export const getClassroomShecdule = (query: ClassroomShecduleQuery) => {
  return http.get<ClassroomShecduleResp>(`${BASE_URL}/classroom`, query)
}
